草庐IT

Java toString - ToStringBuilder 不够;不会穿越

全部标签

C# 工具提示显示的时间不够长

我有一个工具提示出现在鼠标悬停在图像上时:ToolTiptt=newToolTip();protectedvirtualvoidpictureBox_MouseHover(objectsender,EventArgse){tt.InitialDelay=0;tt.SetToolTip(this.pictureBox,"Click'LIVE...");}我的问题是我的文本很长,工具提示消失得太快。如何让工具提示显示更长时间? 最佳答案 设置AutoPopDelayproperty更高-默认为5000(5秒)更新:我的错误:Themax

c# - 为什么要调用 Dispose()?不会发生内存泄漏?

编辑:我的问题没有得到我正在寻找的主要答案。我不清楚。我真的很想知道两件事:不能调用Dispose()会导致内存泄漏吗?如果您有一个大型程序并且从不对任何IDisposable对象调用Dispose(),那么最糟糕的事情是什么?我的印象是,如果未对IDisposable对象调用Dispose(),可能会发生内存泄漏。根据关于此thread的讨论,我的看法是不正确的;如果未调用Dispose(),则不会发生内存泄漏。那为什么还要调用Dispose()呢?是否只是立即释放资源,而不是稍后释放资源?如果您有一个大型程序并且从不对任何IDisposable对象调用Dispose(),那么最糟糕

c# - 主线程结束时线程不会终止

我有一个奇怪的问题:在我的C#应用程序中,我正在创建另一个线程,如下所示:ThreadprintThread=newThread(printWorker);printThread.Name="LoggerMainThread";printThread.IsBackground=true;printThread.Start();当我的主线程结束时,这个新线程继续工作,尽管它被标记为后台。这可能是什么原因造成的?这个对象持有一个Mutex对象,不确定这可能是原因......有什么想法吗?这是来自printWorker方法的代码:while(loggerIsActive){LogMessag

c# - 为什么这段代码不会死锁?

Log方法不应该阻塞吗?namespaceSandbox{classProgram{staticvoidMain(string[]args){varlog=newLogger();lock(log){log.Log("HelloWorld!");}}}publicclassLogger{publicvoidLog(stringmessage){lock(this){Console.WriteLine(message);}}} 最佳答案 同一个线程两次获取同一个锁。这是可行的,因为.NET支持所谓的递归锁(又名reentrantmut

c# - 如果字符串为 null 或空,为什么 string.Split (";") 不会抛出错误?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。如果字符串为空或null,string.split(";")不应该抛出错误吗?对我来说,我正在尝试这段代码并且没有任何错误,stringa=string.empty;if(a.Split(';').Length-1谁能告诉我为什么它不抛出错误以及为什么if语句为真。

c# - MediaElement 网络视频不会停止缓冲

我正在使用MediaElement播放网络视频。当我离开页面时,我注意到任务管理器中我的应用程序仍在使用10%的网络,并且直到它完成视频下载后才停止。我尝试执行以下操作但没有成功。//openlink;mediaElement.Source=welcomeVideoURL;//whenIleavethepageOnNavigatedFrom()mediaElement.Stop();mediaElement.ClearValue(MediaElement.SourceProperty);mediaElement.Source=null;还尝试将源设置为虚拟链接,但仍然没有成功。我认为将

c# - 使用 C# 和 APM 时 CPU 使用率不会达到 100% 的原因是什么?

我有一个CPU密集型应用程序。当在单线程上处理数据时,CPU使用率会在很多分钟内达到100%。所以应用程序的性能似乎受CPU的限制。我对应用程序的逻辑进行了多线程处理,从而提高了整体性能。但是,CPU使用率几乎不会超过30%-50%。我希望CPU(和许多内核)达到100%,因为我同时处理多组数据。下面是我用来启动线程的逻辑的简化示例。当我运行这个示例时,CPU达到100%(在8/16核机器上)。但是,我使用相同模式的应用程序却没有。publicclassDataExecutionContext{publicintCounter{get;set;}//Arraysofdata}stati

c# - 当 UAC 被拒绝时,Process.Start 永远不会返回

我有一个更新程序exe,用于关闭主exe,用更新的exe替换它,然后启动更新的exe。当更新程序尝试启动更新的exe时,如果UAC权限对话框被用户拒绝,更新程序将挂起。这是因为Process.Start()函数永远不会返回。顺便说一下,我的CPU周期表显示几乎没有使用。我希望我所有的用户都对UAC说"is",但既然我在这里,我想至少用某种错误消息来处理这种情况。假设我的用户至少拥有Windows7。exe本身是32位Winforms应用程序。目标.NetFramework是4.0。使用VisualStudio2010Ultimate。关于如何检测我的用户何时拒绝UAC对话框的任何想法?

c# - ManualResetEventSlim : Calling . Set() 后跟 .Reset() 不会释放 *任何* 等待线程

ManualResetEventSlim:调用.Set()后立即调用.Reset()不会释放任何等待线程(注意:ManualResetEvent也会发生这种情况,而不仅仅是ManualResetEventSlim。)我在发布和Debug模式下都尝试了下面的代码。我在四核处理器上运行的Windows764位上使用.Net4作为32位版本运行它。我从VisualStudio2012编译它(因此安装了.Net4.5)。在我的系统上运行它时的输出是:Waitingfor20threadstostartThread1started.Thread2started.Thread3started.Th

c# - DbContext 不会保持连接打开以供重复使用

我正在尝试重用现有的数据库连接,以便我可以在不调用MSDTC的情况下使用TransactionScope执行多个数据库操作。EntityFramework(在4.1版本中使用新的DbContextAPI)似乎不想保持显式打开的连接打开。旧的ObjectContextAPI按预期保持连接打开并且documented.由于DbContextAPI仅在后台使用ObjectContext,因此我预计会有相同的行为。有谁知道此更改是有意为之还是已知问题?我在任何地方都找不到它的记录。publicvoidConnectionRemainsOpen(){using(varcontext=newTes